home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Resources / Chat & Communication / Digsby build 37 / digsby_setup.exe / lib / dns / reversename.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2008-10-13  |  2KB  |  45 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. import dns.name as dns
  5. import dns.ipv6 as dns
  6. import dns.ipv4 as dns
  7. ipv4_reverse_domain = dns.name.from_text('in-addr.arpa.')
  8. ipv6_reverse_domain = dns.name.from_text('ip6.arpa.')
  9.  
  10. def from_address(text):
  11.     
  12.     try:
  13.         parts = list(dns.ipv6.inet_aton(text).encode('hex_codec'))
  14.         origin = ipv6_reverse_domain
  15.     except:
  16.         parts = [ '%d' % ord(byte) for byte in dns.ipv4.inet_aton(text) ]
  17.         origin = ipv4_reverse_domain
  18.  
  19.     parts.reverse()
  20.     return dns.name.from_text('.'.join(parts), origin = origin)
  21.  
  22.  
  23. def to_address(name):
  24.     if name.is_subdomain(ipv4_reverse_domain):
  25.         name = name.relativize(ipv4_reverse_domain)
  26.         labels = list(name.labels)
  27.         labels.reverse()
  28.         text = '.'.join(labels)
  29.         return dns.ipv4.inet_ntoa(dns.ipv4.inet_aton(text))
  30.     elif name.is_subdomain(ipv6_reverse_domain):
  31.         name = name.relativize(ipv6_reverse_domain)
  32.         labels = list(name.labels)
  33.         labels.reverse()
  34.         parts = []
  35.         i = 0
  36.         l = len(labels)
  37.         while i < l:
  38.             parts.append(''.join(labels[i:i + 4]))
  39.             i += 4
  40.         text = ':'.join(parts)
  41.         return dns.ipv6.inet_ntoa(dns.ipv6.inet_aton(text))
  42.     else:
  43.         raise dns.exception.SyntaxError, 'unknown reverse-map address family'
  44.  
  45.